A lot of NeXTSTEP developers are now bringing their products
to market, and a plethora of registration systems seem to be poliferating. Rather than force everybody to reinvent the wheel, I've decided to make public the registration software that we are using at SGAI.
This software provides for two modes of operation, unregistered and registered. Unregistered software can be run for 2 minutes, and then it stops running. We like to think of this as our demo mode.
There are two ways that software can be registered: for single-user use and for network-use. If the software is registered for single-user use, the registration string is written into the user's defaults database. If the software is licensed for network-use, the binary is branded --- you don't have to have every network user register themselves.
What happens when the software starts up depends on how the user has registered. If they have single-user registered, the software makes sure that nobody else on the subnet is using their single-user key. If somebody is, it doesn't let the user run the program. It also alerts the first person with that key that somebody else is using their registration number. If the software is branded for network use, it counts the number of other copies of the program that are running on the subnet that have been running for a longer period of time. If this number is larger than the maximum number of licensed users, the software refuses to run.
One of the really neat things about our branding is that if you move the binary, the software is no longer branded. So people can't take a copy of the software home from work and have it work.
We've also implemented a true "demo mode." This is for trade-shows. You can brand the software with a demo key and the program will work. You can move the binary. But demo keys expire --- you can set when --- and then the software is no longer registered.
SGAI is making this software freely available to all NeXTSTEP developers for use in NeXTSTEP programs, as long as we receive credit in that program, when the program is run, for having provided the registration software.
The registration keys are encrypted with DES. This means that different developers can use the same registration system without fear that we will be able to create keys for each other's programs. However, because we use DES, there are export restrictions imposed by the US government, to wit:
* You may not ship the source-code module des.c outside of the US or canada.
* You may ship a program which uses the des.o compiled module outside of the United States to any type T or type V country as long as you do not provide cryptographic services to the user in your program and you clearly declare "commodity control number 5D11A" on your export declaration. Type T countries include all countries in the Western Hemisphere except Cuba. Type V countries include all countries in the Eastern Hemisphere except the previous communist block countries and the People's Republic of China, Vietnam, Cambodia, and Laos.
I don't make up these rules, so please don't complain to me. For further information, contact:
Bureau of Export Administration
P.O. Box 273
Washington, DC 20044
202-377-2694
By the way, don't violate these rules --- there's a maximum fine of $1,000,000 per violation, and 10 years in jail.